#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <signal.h>
#include <sys/time.h>
#include <errno.h>
int main()
{
  struct itimerval timer;
  struct itimerval old_timer;

  timer.it_value.tv_sec = 1; // 1秒后触发
  timer.it_value.tv_usec = 0;

  timer.it_interval.tv_sec = 0; // 触发后间隔1秒再次触发 ,设置为0表示不在循环
  timer.it_interval.tv_usec = 0;

  // 设置定时器 old_timer 存放之前的定时器设置,相当于alarm()的旧值
  if (setitimer(ITIMER_REAL, &timer, &old_timer) < 0) // ITIMER_REAL 自然计时法 ITIMER_VIRTUAL 虚拟计时法 ITIMER_PROF 同时计时法
  {
    perror("setitimer");
    exit(1);
  }
  int i = 0;
  while (1)
  {
    printf("%d\n", i++);
  }
}